package com.dog.modules.iot.mqtt.produce.enums;

/**
 * 消息类型定义体
 */
public enum OutCommandType {

    TEST(0),

    /**
     * 密钥交换
     */
    EXCHANGER_PUBLIC_KEY(1001),

    /**
     * 获取设备基础参数
     */
    BASIC_PARAM_REQ(1002),


    /**
     * 获取激光定位数据
     */
    LASER_DATA_REQ(1003),

    /**
     * 3.14.5、地图推送
     */
    MAP_PUSH(1004),
    /**
     * 地图删除指令
     */
    MAP_DELETE(1005),

    /**
     * 地图编辑指令
     */
    MAP_EDIT(1006),


    /**
     * 任务创建指令
     */
    TASK_CREATE(1007),

    /**
     * 远程召回
     */
    ROBOT_RECALL(2505),


    /**
     * 设备注销
     */
    DEVICE_RECOVER(2000),

    /**
     * 设备状态同步
     */
    DEVICE_STATUS_SYNC(2001),
    /**
     * 参数同步
     */
    DEVICE_PARAM_SYNC(2002),
    /**
     * 修改工作地图
     */
    WORK_MAP_SYNC(2003),
    /**
     * 推送设备名称
     */
    PUSH_DEVICE_NAME(2004),

    ERASE_MAP(1344),

    /**
     * 任务状态下发
     */
    TASK_STATUS(2401),

    /**
     * 预约任务状态下发
     */
    TASK_SCHEDULE_STATUS(2502),

    /**
     * 取消日志上传
     */
    LOG_CLOUD_DELETE(3105),

    /**
     * 3.10 关机协议(页面发起)
     */
    SHUTDOWN(1107),

    MOWER_TASK(10001),

    MOWER_RECORDING(10000);


    private final Integer cmd;

    OutCommandType(Integer cmd) {
        this.cmd = cmd;
    }

    public static OutCommandType valueOf(Integer cmd) {
        for (OutCommandType value : values()) {
            if (value.cmd.equals(cmd)) {
                return value;
            }
        }
        return null;
    }

    public Integer getCommand() {
        return cmd;
    }

}
